import { defaHttp, Api, PagingApi } from "../index";

/**任务列表 */
export async function apiWkTaskList(
  data: ApiWkTaskList.Req
): Promise<PagingApi.Res<ApiWkTaskList.DataItem[]>> {
  const res = await defaHttp.get<PagingApi.Res<ApiWkTaskList.DataItem[]>>(
    "/tasks",
    data
  );
  return res;
}
/**任务列表 */
export namespace ApiWkTaskList {
  export interface Req extends PagingApi.Req {
    /**任务关键字 */
    keyword: string;
  }
  export interface DataItem {
    /**自动完成时间 */
    auto_finish_time: string | null;
    /**
     * 示例：0
     */
    arbitration_agree_number: number;
    /**
     * 示例：null
     */
    arbitration_duration: null;
    /**
     * 示例：0
     */
    arbitration_refuse_number: number;
    /**
     * 示例：null
     */
    arbitration_time: null;
    /**
     * 本金，示例：1000.0000
     */
    capital: string;
    /**
     * 佣金，示例：20.0000
     */
    commission: string;
    /**
     * 示例：2023-09-11 13:30:31
     */
    created_at: string;
    /**
     * 同意删除人数，示例：null
     */
    delete_agree_number: null;
    /**
     * 拒绝删除人数，示例：null
     */
    delete_refuse_number: null;
    /**
     * 删除审核时长：分钟，示例：null
     */
    delete_verify_duration: null;
    /**
     * 示例：null
     */
    deleted_at: null;
    /**
     * 详情，示例：6这是任务详情
     */
    details: string;
    /**
     * 冻结金额，示例：0.0000
     */
    frozen_amount: string;
    /**
     * 任务id，示例：19
     */
    id: number;
    /**
     * 示例：123331
     */
    images: string[];
    /**
     * 标题，示例：6任务标题
     */
    introduction: string;
    /**
     * 示例：1
     */
    order_mode: number;
    /**
     * 允许同时接单人数，示例：1
     */
    order_person_number: number;
    /**
     * 平台服务费，示例：4.0000
     */
    platform_service_fee: string;
    /**
     * 状态：-1=已撤销，1=待接单,2=已接单，3=仲裁中，4=未完成,5,待审核，10=完成
     */
    status: number;
    /**
     * 示例：null
     */
    tag: null;
    /**
     * 任务编号，示例：5810255488749
     */
    task_no: number;
    /**
     * 示例：1
     */
    task_type: number;
    /**
     * 交易标识，示例：611111111122222222223333333333444444444455555555556666666666777777
     */
    txid: string;
    /**
     * 示例：2023-09-11 13:30:31
     */
    updated_at: string;
    /**
     * usdt数量，示例：1024.0000
     */
    usdt_number: string;
    /**
     * 用户id，示例：5
     */
    user_id: number;
    /**
     * 口令，15位数字，示例：null
     */
    watchword: null;
    /**
     * xxb数量，示例：1024.0000
     */
    xxb_number: string;
    /**
     * xxb价格，示例：1.0000
     */
    xxb_price: string;
    /**
     * 发布人，示例：--
     */
    user: User;
    /**
     * 任务期限（小时），示例：40
     */
    order_limit_time: number;
  }
  /**
   * 示例：-
   */
  export interface User {
    /**
     * 示例：0x0ee4f84e4647a5ed5653b7806b6a9189b28cf440
     */
    address: string;
    /**
     * 示例：4
     */
    id: number;
    /**
     * 示例：0
     */
    level: number;
  }
}

/**我发布的任务列表 */
export async function apiWkMyAddTaskList(
  data: ApiWkMyAddTaskList.Req
): Promise<PagingApi.Res<ApiWkMyAddTaskList.DataItem[]>> {
  const res = await defaHttp.get<PagingApi.Res<ApiWkMyAddTaskList.DataItem[]>>(
    "/my_create_task",
    data
  );
  return res;
}
/**我发布的任务列表 */
export namespace ApiWkMyAddTaskList {
  export interface Req extends PagingApi.Req {
    /**任务关键字 */
    watchword: string;
    /**任务状态 */
    status: number;
  }
  export interface DataItem extends ApiWkTaskList.DataItem {}
}

/**我接受的任务列表 */
export async function apiWkMyOrderTaskList(
  data: ApiWkMyOrderTaskList.Req
): Promise<PagingApi.Res<ApiWkMyOrderTaskList.DataItem[]>> {
  const res = await defaHttp.get<PagingApi.Res<ApiWkMyOrderTaskList.DataItem[]>>(
    "/my_order_task",
    data
  );
  return res;
}
/**我接受的任务列表 */
export namespace ApiWkMyOrderTaskList {
  export interface Req extends PagingApi.Req {
    /**任务关键字 */
    watchword: string;
    /**任务状态 */
    status: number;
  }
  export interface DataItem {
    /**信誉度 */
    reputation: string;
    /**任务 */
    task: ApiWkTaskList.DataItem;
    /**任务id */
    task_id: number;
    updated_at: string;
    /**接单者id */
    user_id: number;
    created_at: string;
    /**接单id */
    id: number;
    /**
     * 发布人，示例：--
     */
    user: User;
    /**
     * 任务期限（小时），示例：40
     */
    order_limit_time: number;
  }
  /**
   * 示例：-
   */
  export interface User {
    /**
     * 示例：0x0ee4f84e4647a5ed5653b7806b6a9189b28cf440
     */
    address: string;
    /**
     * 示例：4
     */
    id: number;
    /**
     * 示例：0
     */
    level: number;
  }
}

/**违规词词库 */
export async function apiWkBanWordTotal(
  data: ApiWkBanWordTotal.Req
): Promise<PagingApi.Res<ApiWkBanWordTotal.DataItem[]>> {
  const res = await defaHttp.get<PagingApi.Res<ApiWkBanWordTotal.DataItem[]>>(
    `/words/approved_list/${data.searchText || ""}`,
    data
  );
  return res;
}
/**违规词词库 */
export namespace ApiWkBanWordTotal {
  export interface Req extends PagingApi.Req {
    searchText?: string;
  }
  export interface DataItem {
    id: number;
    word: string;
  }
}

/**待审核的违规词 */
export async function apiWkAwaitBanWord(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiWkAwaitBanWord.DataItem[]>> {
  const res = await defaHttp.get<PagingApi.Res<ApiWkAwaitBanWord.DataItem[]>>(
    "/words/list",
    data
  );
  return res;
}
/**待审核的违规词 */
export namespace ApiWkAwaitBanWord {
  export interface DataItem {
    /**
     * 同意人数，示例：1
     */
    agree_num: number;
    /**
     * 创建时间，示例：2023-09-14 15:30:23
     */
    created_at: string;
    /**
     * 不同意人数，示例：2
     */
    disagree_num: number;
    /**
     * 说明，示例：null
     */
    explain: null;
    /**
     * 示例：3
     */
    id: number;
    /**
     * 0=待审核,1=通过,2=拒绝
     */
    status: number;
    /**
     * 更新时间，示例：2023-09-14 15:30:23
     */
    updated_at: string;
    /**
     * 示例：5
     */
    user_id: number;
    /**
     * 违规词，示例：你好
     */
    word: string;
    /**结束时间，小时 */
    end_time_hour: string;
    /**1：可以投票；0：不能投票 */
    can_vote:number;
  }
}

/**我的提交的违规词列表 */
export async function apiWkMyBanWord(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiWkMyBanWord.DataItem[]>> {
  const res = await defaHttp.get<PagingApi.Res<ApiWkMyBanWord.DataItem[]>>(
    "/words/my_list",
    data
  );
  return res;
}
/**我的提交的违规词列表 */
export namespace ApiWkMyBanWord {
  export interface DataItem extends ApiWkAwaitBanWord.DataItem {}
}

/**任务留言 */
export async function apiWkTaskComment(
  data: PagingApi.Req,
  params: ApiWkTaskComment.Params
): Promise<PagingApi.Res<ApiWkTaskComment.DataItem[]>> {
  const res = await defaHttp.get<PagingApi.Res<ApiWkTaskComment.DataItem[]>>(
    `/guestbook-info/${params.id}`,
    data
  );
  return res;
}
/**任务留言 */
export namespace ApiWkTaskComment {
  export interface Params {
    id: number;
  }
  export interface DataItem {
    /**
     * 留言内容，示例：第二次留言
     */
    content: string;
    /**
     * 示例：2023-09-12 17:21:40
     */
    created_at: string;
    /**
     * 示例：null
     */
    deleted_at: null;
    /**
     * 示例：0
     */
    guestbook_id: number;
    /**
     * 示例：8
     */
    id: number;
    /**
     * 示例：0
     */
    parent_id: number;
    /**
     * 任务id，示例：20
     */
    task_id: number;
    /**
     * 1=雇主,2=威客（接单者）,3=仲裁者
     */
    type: number;
    /**
     * 示例：2023-09-12 17:21:40
     */
    updated_at: string;
    /**
     * 示例：-
     */
    user: User;
    /**
     * 示例：5
     */
    user_id: number;
  }

  /**
   * 示例：-
   */
  export interface User {
    /**
     * 示例：5
     */
    id: number;
    /**
     * 留言者昵称，示例：MFnnbSYwkJ
     */
    name: string;
    address: string;
  }
}

/**任务留言 */
export async function apiBanTaskDelList(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiBanTaskDelList.DataItem[]>> {
  const res = await defaHttp.get<PagingApi.Res<ApiBanTaskDelList.DataItem[]>>(
    `/task/pending_delete`,
    data
  );
  return res;
}
/**任务留言 */
export namespace ApiBanTaskDelList {
  export interface DataItem {
    /**
     * 示例：0
     */
    agree_num: number;
    /**
     * 0=无法投票,1=可以投票
     */
    can_vote: number;
    /**
     * 示例：2023-09-18 11:14:48
     */
    created_at: string;
    /**
     * 示例：0
     */
    disagree_num: number;
    /**
     * 说明，示例：删掉
     */
    explain: string;
    /**
     * 删除任务id,即deletion_id，给删除任务投票时用到
     */
    id: number;
    /**
     * 图片，示例：/
     */
    images: string[];
    /**
     * 0，申请中，1=同意，2=驳回
     */
    status: number;
    /**
     * 示例：-
     */
    task: Task;
    /**
     * 示例：20
     */
    task_id: number;
    /**
     * 示例：2023-09-18 11:14:50
     */
    updated_at: string;
    /**
     * 示例：-
     */
    user: User;
    /**
     * 示例：3
     */
    user_id: number;
    /**结束时间，小时 */
    end_time_hour: string;
  }

  /**
   * 示例：-
   */
  export interface Task extends ApiWkTaskList.DataItem {}

  /**
   * 示例：-
   */
  export interface User {
    /**
     * 示例：0xa64719b507c4eb7ed06fefd7abe047c8a4745b2d
     */
    address: string;
    /**
     * 示例：3
     */
    id: number;
    /**
     * 示例：0
     */
    level: number;
  }
}

/**仲裁列表 */
export async function apiTaskArbitrateList(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiTaskArbitrateList.DataItem[]>> {
  const res = await defaHttp.get<PagingApi.Res<ApiTaskArbitrateList.DataItem[]>>(
    `/arbitration_list`,
    data
  );
  return res;
}
/**仲裁列表 */
export namespace ApiTaskArbitrateList {
  export interface DataItem {
    /**当前用户能否参与改仲裁，0：不能；1：能； */
    can_arbitrate: number;
    /**
     * 时间，示例：2023-09-19 16:11:48
     */
    created_at: string;
    /**
     * 仲裁id，示例：1
     */
    id: number;
    /**
     * 示例：-
     */
    task: Task;
    /**
     * 任务id，示例：20
     */
    task_id: number;
    /**
     * 说明，示例：同意威客
     */
    title: string;
  }

  /**
   * 示例：-
   */
  export interface Task {
    /**
     * 任务id，示例：20
     */
    id: number;
    /**
     * 任务编号，示例：9032599232345
     */
    task_no: number;
  }
}

/**保价基金申请列表 */
export async function apiInsuredAppylList(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiInsuredAppylList.DataItem[]>> {
  const res = await defaHttp.get<PagingApi.Res<ApiInsuredAppylList.DataItem[]>>(
    `/insured/list`,
    data
  );
  return res;
}
/**保价基金申请列表 */
export namespace ApiInsuredAppylList {
  export interface DataItem {
    /**
     * 同意人数，示例：0
     */
    agree_num: number;
    /**
     * 申请时间，示例：2023-10-12 12:23:25
     */
    created_at: string;
    /**
     * 拒绝人数，示例：0
     */
    disagree_num: number;
    /**
     * -，示例：1
     */
    id: number;
    /**
     * wkc数量，示例：10.0000
     */
    money: string;
    /**
     * 0=待审核,1=通过,2=拒绝
     */
    status: number;
    /**
     * -，示例：2023-10-12 12:23:25
     */
    updated_at: string;
    /**
     * -，示例：-
     */
    user: User;
    /**
     * 用户id，示例：6
     */
    user_id: number;
    /**投票时长 */
    end_time_hour: string;
    /**0：不能投票；1：可以投票 */
    can_vote: number;
    title: string;
    images: string[];
    txid: string | undefined;
  }

  /**
   * -，示例：-
   */
  export interface User {
    /**
     * 地址，示例：0x9938d9ac768dc73fa3fc506eb58cc168b97a5346
     */
    address: string;
    /**
     * 用户id，示例：6
     */
    id: number;
    /**
     * 等级，示例：5
     */
    level: number;
  }
}

/**我的保价基金列表 */
export async function apiMyInsuredList(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiMyInsuredList.DataItem[]>> {
  const res = await defaHttp.get<PagingApi.Res<ApiMyInsuredList.DataItem[]>>(
    `/insured/my_list`,
    data
  );
  return res;
}
/**我的保价基金列表 */
export namespace ApiMyInsuredList {
  export interface DataItem {
    /**
     * 同意人数，示例：0
     */
    agree_num: number;
    /**
     * 0：不能投票，1：可以投票
     */
    can_vote: number;
    /**
     * 申请时间，示例：2023-10-12 12:23:25
     */
    created_at: string;
    /**
     * 拒绝人数，示例：0
     */
    disagree_num: number;
    /**
     * 投票时长，示例：48
     */
    end_time_hour: string;
    /**
     * -，示例：1
     */
    id: number;
    /**
     * 图片，示例：/1.png
     */
    images: string[];
    /**
     * wkc数量，示例：10.0000
     */
    money: string;
    /**
     * 0=待审核,1=通过,2=拒绝
     */
    status: number;
    /**
     * 说明，示例：这是说明
     */
    title: string;
    /**
     * -，示例：2023-10-12 12:23:25
     */
    updated_at: string;
    /**
     * -，示例：-
     */
    user: User;
    /**
     * 用户id，示例：6
     */
    user_id: number;
    /**交易哈希 */
    txid: string;
  }

  /**
   * -，示例：-
   */
  export interface User {
    /**
     * 地址，示例：0x9938d9ac768dc73fa3fc506eb58cc168b97a5346
     */
    address: string;
    /**
     * 用户id，示例：6
     */
    id: number;
    /**
     * 等级，示例：5
     */
    level: number;
  }
}

/**全网保价基金列表 */
export async function apiAllInsuredList(
  data: PagingApi.Req
): Promise<PagingApi.Res<ApiAllInsuredList.DataItem[]>> {
  const res = await defaHttp.post<PagingApi.Res<ApiAllInsuredList.DataItem[]>>(
    `/all/insurance/fund/log`,
    data
  );
  return res;
}
/**全网保价基金列表 */
export namespace ApiAllInsuredList {
  export interface DataItem {
    /**
     * -，示例：2023-11-14 19:14:00
     */
    created_at: string;
    /**
     * -，示例：4
     */
    id: number;
    /**
     * -，示例：9.8450
     */
    number: string;
    /**
     * -，示例：0x499b6d97e9f2e8f4eed56c804a2b296e3f8692e4f3774cda6ced3debe6b2507f
     */
    txid: string;
    /**
     * -，示例：-
     */
    user: User;
    /**
     * -，示例：77
     */
    user_id: number;
  }

  /**
   * -，示例：-
   */
  export interface User {
    /**
     * -，示例：0x9938d9ac768dc73fa3fc506eb58cc168b97a5346
     */
    address: string;
    /**
     * -，示例：77
     */
    id: number;
  }
}
